package com.literaryfamily.literaryfamily.service.book;

import com.literaryfamily.literaryfamily.entity.Book;
import com.literaryfamily.literaryfamily.entity.UserCollect;
import com.literaryfamily.literaryfamily.myUtil.PageUtil;

import java.util.List;

/**
 * 收藏接口
 * 所有涉及读写的方法都需要抛出 WriteError 数据库读写错误异常(这个是运行时异常,只需要抛出不需要处理)
 * 此接口所有方法均不检查用户身份,应该验证身份后在进行检查
 *
 * @author 滑稽/因果报应
 */
public interface FavoriteService {
    /**
     * 收藏书籍
     *
     * @param userId 收藏用户
     * @param bookId 对应的书
     * @return 操作结果
     */
    UserCollect addCollectionBook(Long userId, Long bookId);

    /**
     * 移除收藏
     *
     * @param userId 操作用户
     * @param bookId 移除的书
     * @return 操作结果
     */
    UserCollect delCollectionBook(Long userId, Long bookId);

    /**
     * 获取用户收藏列表
     *
     * @param userId  获取的用户
     * @param pageMsg 分页信息,为空时代表不进行分页,获取所有记录
     * @return 收藏列表
     */
    List<Book> getUserCollection(Long userId, PageUtil pageMsg);

}